package com.itheima.lambda.test2;
/*
有参数无返回值lambda练习
1.首先存在一个接口（StringHandler）
 2.在该接口中存在一个抽象方法（printMessage），该方法是有参数无返回值
 3.在测试类（StringHandlerDemo）中存在一个方法（useStringHandler）
              方法的的参数是StringHandler类型的
              在方法内部调用了StringHandler的printMessage方法
 */
public class StringHandlerDemo {


    public static void main(String[] args) {
        //匿名内部类
        useStringHandler(new StringHandler() {
            @Override
            public void printMessage(String msg) {
                System.out.println("匿名内部类打印了:"+msg);
            }
        });
        // 有且仅有一个参数的时候小括号可以省略 , 数据类型可以省略 ,要省一起省
        useStringHandler(msg-> System.out.println("匿名内部类打印了:"+msg));
        //lambda
        useStringHandler((String msg)->{
            System.out.println("lambda打印了:"+msg);
        });



    }


    public static void useStringHandler(StringHandler handler){

        handler.printMessage("你是一个大帅逼");
    }


}
interface  StringHandler{


    void  printMessage(String msg);
}